package com.example.blog.restController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.blog.base.BaseImpl;
import com.example.blog.entity.MainMenu;
import com.example.blog.entity.Query;
import com.example.blog.entity.User;
import com.example.blog.mapper.TestMapper;
import com.example.blog.service.MainMenuService;
import com.example.blog.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@CrossOrigin
@RestController
public class TestRestController {

//    @RequestMapping("/test")
////    @RequestBody采用前后端分离开发时(vue)，axios提交的post方式是一个Jason，后端需要该注解进行解析
//    public Map<String, Object> test(@RequestBody User user) {
//        HashMap<String, Object> map = new HashMap<>();
//        User u = new User("admin", "admin");
//        System.out.println(user);
//        if (u.getUsername().equals(user.getUsername()) && u.getPassword().equals(user.getPassword())) {
//            map.put("code", 200);
//            map.put("obj", "登录成功！");
//        } else {
//            map.put("code", -1);
//            map.put("obj", "账号或密码输入有误！请重新输入！");
//        }
//        return map;
//    }

    @Autowired
    TestMapper testMapper;

    @Autowired
    BaseImpl baseImpl;

//    @RequestMapping("/test")
////    @RequestBody采用前后端分离开发时(vue)，axios提交的post方式是一个Jason，后端需要该注解进行解析
//    public Map<String, Object> test() {
//        HashMap<String, Object> map = new HashMap<>();
//        try {
//            List<MainMenu> mainMenuList = baseImpl.getListByQuery(mainMenuService, null);
//            map.put("code", 200);
//            map.put("message", "获取成功！");
//            map.put("data", mainMenuList);
//            System.out.println(mainMenuList);
//        } catch (Exception e) {
//            e.printStackTrace();
//            map.put("code", -1);
//            map.put("message", "获取失败！");
//        }
//        return map;
//    }

//    @RequestMapping("/test")
////    @RequestBody采用前后端分离开发时(vue)，axios提交的post方式是一个Jason，后端需要该注解进行解析
//    public Map<String, Object> test() {
//        HashMap<String, Object> map = new HashMap<>();
//        try {
////            Page<User> page = new Page<>(1,5);
////            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
////            queryWrapper.eq("password","33");
////            Page<User> resultPage = testMapper.selectPage(page, queryWrapper);
//
//            Page<User> page = new Page<>(1,3);
//            Page<User> resultPage = testMapper.testPage(page);
//            //总记录条数
//            long count = resultPage.getTotal();
//            //查询到的数据
//            List resultList = resultPage.getRecords();
//            System.out.println(count);
//            System.out.println(resultList);
//            map.put("code", 200);
//            map.put("message", "获取成功！");
//            map.put("data", resultList);
//        } catch (Exception e) {
//            e.printStackTrace();
//            map.put("code", -1);
//            map.put("message", "获取失败！");
//        }
//        return map;
//    }

    @RequestMapping("/test")
//    @RequestBody采用前后端分离开发时(vue)，axios提交的post方式是一个Jason，后端需要该注解进行解析
    public Map<String, Object> testPageXmlQuery() {
        HashMap<String, Object> map = new HashMap<>();
        try {
//            Page<User> page = new Page<>(1,5);
//            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//            queryWrapper.eq("password","33");
//            Page<User> resultPage = testMapper.selectPage(page, queryWrapper);

//            不想进行分页时可以传 new Page<>(1, -1)
            Page<User> page = new Page<>(1, -1);
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//            queryWrapper.eq("password", "33");
//            不想要条件查询时可以传一个空的queryWrapper对象
            Page<User> resultPage = testMapper.testPageXmlQuery(page, queryWrapper);
            //总记录条数
            long count = resultPage.getTotal();
            //查询到的数据
            List resultList = resultPage.getRecords();
            System.out.println(count);
            System.out.println(resultList);
            map.put("code", 200);
            map.put("message", "获取成功！");
            map.put("data", resultList);
        } catch (Exception e) {
            e.printStackTrace();
            map.put("code", -1);
            map.put("message", "获取失败！");
        }
        return map;
    }
}
